package com.example.spring.multi.basic.dingdang.model;

import lombok.Data;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @program: knowledge-pooling
 * @ClassName ResultInfoModel
 * @description:
 * @author: tomato
 * @create: 2024-07-18 00:39
 * @Version 1.0
 **/
@Data
public class ResultInfoModel {
    //城市
    private String city;
    //门店名称
    private String shopName;
    //英克商品编码
    private String productCode;
    //英克商品编码合并项
    private String productCodeMerge;

    //库存
    private Integer inventory;
    //订单量
    private Integer orderNum;


    // 提取括号内编码并与b拼接的方法
    // 例如：(12345) 67890 123456 789012 345678 456789
    public void extractAndConcatToC() {
        // 正则表达式用于匹配括号内的内容
        // 注意：这里假设括号是圆括号()，且没有其他嵌套括号
        Pattern pattern = Pattern.compile("\\((\\d+)\\)");
        Matcher matcher = pattern.matcher(this.shopName);

        StringBuilder sb = new StringBuilder();

        // 遍历所有匹配项
        while (matcher.find()) {
            // 匹配到的括号内内容
            String insideParens = matcher.group(1);
            // 检查是否全为数字
            if (insideParens.matches("\\d+")) {
                // 如果是第一个匹配项或者之前没有添加过值，则添加
                if (sb.length() == 0) {
                    sb.append(insideParens);
                } else {
                    // 如果有多个全数字编码，这里可以根据需要选择如何处理（例如，只取第一个）
                    // 这里为了简单，我们只取第一个找到的全数字编码
                    break;
                }
            }
        }
        // 拼接b的值
        if (sb.length() > 0) {
            this.setProductCodeMerge(sb.toString() + this.productCode);
        } else {
            // 如果没有找到全数字的编码，可以设置一个默认值或者保持c不变
            // 可以选择设置默认值或保持c为null等
            this.setProductCodeMerge("");
        }
    }
}
